<template>
	<div class="wrapper">
			
			<!-- header部分 -->
			<header>
				<p>商家信息</p>
			</header>
			
			<!-- 商家logo部分 -->
			<div class="business-logo">
				<img :src="business.businessImg">
			</div>
			
			<!-- 商家信息部分 -->
			<div class="business-info">
				<h1>{{business.businessName}}</h1>
				<p>&#165;{{business.starPrice}}起送 &#165;{{business.deliveryPrice}}配送</p>
				<p>{{business.businessExplain}}</p>
			</div>
			
			<!-- 食品列表部分 -->
			<ul class="food">
				<li v-for="(itemF,index) in foodArray">
					<div class="food-left">
						<img :src="itemF.foodImg">
						<div class="food-left-info">
							<h3>{{itemF.foodExplain}}</h3>
							<p>{{itemF.foodName}}</p>
							<p>&#165;{{itemF.foodPrice}}</p>
						</div>
					</div>
					<div class="food-right">
						<div>
							<i class="fa fa-minus-circle" @click="sub(index)" v-show="itemF.quantity!=0"></i>
						</div>
						<p><span v-show="itemF.quantity!=0">{{itemF.quantity}}</span></p>
						<div>
							<i class="fa fa-plus-circle" @click="add(index)"></i>
						</div>
					</div>
				</li>
			</ul>
			
			<!-- 购物车部分 -->
			<div class="cart">
				<div class="cart-left">
					<div class="cart-left-icon">
						<i class="fa fa-shopping-cart"></i>
						<div class="cart-left-icon-quantity">{{foodAllQuantity}}</div>
					</div>
					<div class="cart-left-info">
						<p>&#165;{{foodAllPrice}}</p>
						<p>另需配送费{{business.deliveryPrice}}元</p>
					</div>
				</div>
				<div class="cart-right" >
					<!-- 不够起送费 -->
					
					<div class="cart-right-itemStar" v-show="buyAllPrice<business.starPrice">
						&#165;{{business.starPrice}}起送
					</div>
					
					<!-- 达到起送费 -->
					<div class="cart-right-item" @click="toOrder(business.businessId)" v-show="buyAllPrice>=business.starPrice">
					    去结算
					</div>
				</div>
			</div>
			
		</div>	

</template>

<script>
export default {
	data(){
		return{
			//获取参数
			businessId:this.$route.query.businessId,
			business:{},
			foodArray:[],
			user:{},
			cartArray:[]
		}
	},
	created(){
		// 从sessionStroage中获取到用户的信息，如果没有用户的信息，返回空值null
            this.user=this.$getSessionStorage('user');
		     // 利用axios根据businessId查询商家的信息
        this.$axios.post('BusinessController/getBusinessById',this.$qs.stringify({
            businessId:this.businessId
        })).then(response=>{
			// 如果请求成功从后台获取数据
            this.business = response.data;
        }).catch(error=>{
            console.log(error)
        }),
		//根据businessId查询所属食品信息
		this.$axios.post('FoodController/listFoodByBusinessId',this.$qs.stringify({
			businessId:this.businessId
		})).then(response=>{
            this.foodArray=response.data;
			//遍历foodArray,将的到的food对象添加一个数量属性
				for (let i = 0; i < this.foodArray.length; i++) {
					this.foodArray[i].quantity = 0;
				}
				 // 登录后，在购物车中查询是否有该食品(listCart())
		if (this.user != null) {
			this.listCart();
		}
		}).catch(error=>{
			console.log(error)
		})
		
	},
	methods:{

    sub:function(index){
		//验证是否登录
		if(this.user==null){
            this.$router.push({
				path:'/login',
			})
			return
		}
		// 完成具体操作  判断数量是否大于1,如果成立update,否则remove
		if(this.foodArray[index].quantity>1){
			// 减   -1
             this.updateCart(index,-1)
		}else{
             this.removeCart(index)
		}
		
	   },

	add:function(index){
			//验证是否登录
		if(this.user==null){
             this.$router.push({
				path:'/login',
			})
			return
		}	
		// 完成具体操作
		// 判断foodArray中所对应数量是否为零
		if (this.foodArray[index].quantity == 0) {
					//做insert
					this.savaCart(index);
				} else {
					//做update
					this.updateCart(index, 1);
				}
	   },
	//    查询购物车信息
	   listCart() {
		this.$axios.post('CartController/listCart', this.$qs.stringify({
					businessId: this.businessId,
					userId: this.user.userId,

				})).then(response => {
					let cartArray  = response.data;
					//遍历所有食品列表
					for (let foodItem of this.foodArray) {
						foodItem.quantity = 0;
						for (let cartItem of cartArray) {
							if (cartItem.foodId == foodItem.foodId) {
								foodItem.quantity = cartItem.quantity;
							}
						}
					}
					this.foodArray.sort();
				}).catch(error => {
					console.error(error);
				});
			},
	// 添加购物车食品信息
	savaCart(index){
		this.$axios.post('CartController/saveCart',this.$qs.stringify({
			userId:this.user.userId,businessId:this.businessId,foodId:this.foodArray[index].foodId
		})).then(response => {
			console.log(response.data)
               	if (response.data == 1) {
						// 此食品数量要更新为1；
						this.foodArray[index].quantity = 1;
						this.foodArray.sort();
					} else {
						alert('向购物车中添加食品失败！');
					}
		}).catch(error => {
					console.error(error);
				});
	},
	// 更新购物车食品信息
	updateCart(index, num){
		this.$axios.post('CartController/updateCart',this.$qs.stringify({
			userId:this.user.userId,businessId:this.businessId,foodId:this.foodArray[index].foodId,quantity:this.foodArray[index].quantity+num
		})).then(response => {
               	if (response.data == 1) {
						//此食品数量要更新为1或-1；
						this.foodArray[index].quantity += num;
						this.foodArray.sort();
					} else {
						alert('向购物车中更新食品失败！');
					}
		           }).catch(error => {
					console.error(error);
				});
	},
	// 删除购物车食品信息
	removeCart(index){
		this.$axios.post('CartController/removeCart',this.$qs.stringify({
			userId:this.user.userId,businessId:this.businessId,foodId:this.foodArray[index].foodId
		})).then(response => {
               if (response.data == 1) {
						//该食品数量要更新为0；
						this.foodArray[index].quantity = 0;
						this.foodArray.sort();
					} else {
						alert('从购物车中删除食品失败！');
					}
		           }).catch(error => {
					console.error(error);
				});
	},
	toOrder(businessId) {
		console.log(businessId)
				this.$router.push({
					path: '/orders',
					query: {
						businessId: businessId
					}
				});
			},
	},

	computed:{
		// 食品总价格 += 每一个食品的单价*该食品的数量
		foodAllPrice(){
			let foodMoney=0
			for(let item of this.foodArray){
				foodMoney += item.foodPrice*item.quantity  
			}
			return foodMoney;
		},
		// 食品总数量 += 每一个食品的数量
		foodAllQuantity(){
			let foodNum=0
			for(let item of this.foodArray){
				foodNum +=item.quantity
			}
			return foodNum
		},
        //  结算价格=食品总价格+配送费
		buyAllPrice(){
          let AllPrice=this.foodAllPrice + this.business.deliveryPrice;
		  return AllPrice
		}
	}
}
</script>

<style scoped>
/****************** 总容器 ******************/
.wrapper{
	width: 100%;
	height: 100%;
}

/****************** header部分 ******************/
.wrapper header{
	width: 100%;
	height: 12vw;
	background-color: #0097FF;
	color: #fff;
	font-size: 4.8vw;
	
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

/****************** 商家logo部分 ******************/
.wrapper .business-logo{
	width: 100%;
	height: 35vw;
	/*使用上外边距避开header部分*/
	margin-top: 12vw;
	
	display: flex;
	justify-content: center;
	align-items: center;
}
.wrapper .business-logo img{
	width: 40vw;
	height: 30vw;
	border-radius: 5px;
}

/****************** 商家信息部分 ******************/
.wrapper .business-info{
	width: 100%;
	height: 20vw;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
.wrapper .business-info h1{
	font-size: 5vw;
}
.wrapper .business-info p{
	font-size: 3vw;
	color: #666;
	margin-top: 1vw;
}

/****************** 食品列表部分 ******************/
.wrapper .food{
	width: 100%;
	/*使用下外边距避开footer部分*/
	margin-bottom: 14vw;
}
.wrapper .food li{
	width: 100%;
	box-sizing: border-box;
	padding: 2.5vw;
	user-select: none;
	
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.wrapper .food li .food-left{
	display: flex;
	align-items: center;
}
.wrapper .food li .food-left img{
	width: 20vw;
	height: 20vw;
}
.wrapper .food li .food-left .food-left-info{
	margin-left: 3vw;
}
.wrapper .food li .food-left .food-left-info h3{
	font-size: 3.8vw;
	color: #555;
}
.wrapper .food li .food-left .food-left-info p{
	font-size: 3vw;
	color: #888;
	margin-top: 2vw;
}
.wrapper .food li .food-right{
	width: 16vw;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.wrapper .food li .food-right .fa-minus-circle{
	font-size: 5.5vw;
	color: #999;
	cursor: pointer;
}
.wrapper .food li .food-right p{
	font-size: 3.6vw;
	color: #333;
}
.wrapper .food li .food-right .fa-plus-circle{
	font-size: 5.5vw;
	color: #0097EF;
	cursor: pointer;
}

/****************** 购物车部分 ******************/
.wrapper .cart{
	width: 100%;
	height: 14vw;
	
	position: fixed;
	left: 0;
	bottom: 0;
	
	display: flex;
}
.wrapper .cart .cart-left{
	flex: 2;
	background-color: #505051;
	display: flex;
}
.wrapper .cart .cart-left .cart-left-icon{
	width: 16vw;
	height: 16vw;
	box-sizing: border-box;
	border: solid 1.6vw #444;
	border-radius: 8vw;
	background-color: #3190E8;
	font-size: 7vw;
	color: #fff;
	
	display: flex;
	justify-content: center;
	align-items: center;
	
	margin-top: -4vw;
	margin-left: 3vw;
	
	position: relative;
}
.wrapper .cart .cart-left .cart-left-icon-quantity{
	width: 5vw;
	height: 5vw;
	border-radius: 2.5vw;
	background-color: red;
	color: #fff;
	font-size: 3.6vw;
	
	display: flex;
	justify-content: center;
	align-items: center;
	
	position: absolute;
	right: -1.5vw;
	top: -1.5vw;
}
.wrapper .cart .cart-left .cart-left-info p:first-child{
	font-size: 4.5vw;
	color: #fff;
	margin-top: 1vw;
}
.wrapper .cart .cart-left .cart-left-info p:last-child{
	font-size: 2.8vw;
	color: #AAA;
}

.wrapper .cart .cart-right{
	flex: 1;
}
/*达到起送费时的样式*/
.wrapper .cart .cart-right .cart-right-item{
	width: 100%;
	height: 100%;
	background-color: #38CA73;
	color: #fff;
	font-size: 4.5vw;
	font-weight: 700;
	user-select: none;
	cursor: pointer;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

/*不够起送费时的样式（只有背景色和鼠标样式的区别）*/

.wrapper .cart .cart-right .cart-right-itemStar{
	width: 100%;
	height: 100%;
	background-color: #535356;
	color: #fff;
	font-size: 4.5vw;
	font-weight: 700;
	user-select: none;
	
	display: flex;
	justify-content: center;
	align-items: center;
}

</style>